◆ GBC Wiz I-III 機能追加＆追加バグ修正 ◆
【ハックロム総合スレ part12】 87=100=108氏 作成の「GBC Wiz3(KOD)機能追加テスト」を I ・ II にも導入
（大元を制作された【ハックロム総合スレ part12】 87=100=108氏 にこの場を借りて敬意を表します）

※なお、I ・ II への移植にあたった側（筆者）がバイナリ的には知識０のド素人のため
　（part12 - 87=100=108氏 が詳細な解説を同梱してくださっていたおかげでなんとか形になっています）
　各機能とも予期しない不審な挙動が存在している可能性があります。
　もし改善すべき個所などがあった場合にご指摘・修正していただける場合はお申し出ください。

※※「機能追加＆追加バグ修正」（「GBC Wiz3(KOD)機能追加テスト」とその I ・ II への移植）の
　パッチ適用後は、それ以前のステートセーブは使えなくなります。
　（戦闘・移動中ともプログラムに手が入る都合上、ステート再開ではほぼフリーズする）
　「機能追加＆追加バグ修正」導入パッチ適用前のステートセーブを利用したい場合、
　必ずそこから一度タイトル画面に戻ってセーブデータをリフレッシュしてください。
　（同梱の単機能パッチをオリジナル版に別途当てる場合も同じことが言えるので注意）


●「GBC Wiz3(KOD)機能追加テスト」からの導入機能
・アライメント確認追加
　（キャンプ時などのAC更新処理中に性格変化時の呪い付加・解除が行われないバグの修正）
・オートターゲット（※正常動作させるために武器射程改造＋射程修正の機能追加も含有）
　（モンスターへの攻撃時、射程範囲内の生存者を再検索して攻撃）
・パッド入力改造
　（戦闘中のみ有効なABボタンの連射（スムーズなメッセージ送り）機能を追加）
・耐性関連変更
　（電撃抵抗が麻痺＆首抵抗として機能しているバグの修正）
・サウンド関係変更
　（一部の音色がFC版に近い感じに ※不完全）
　（コマンド決定時SEをFC版に近い感じに ※同梱の追加パッチでキャンセルSEを削除することも可能）

各変更でバイナリ的に何をどうしているかは
元の「GBC Wiz3(KOD)機能追加テスト」の奥付けを参照

※「モンスター後方攻撃（モンスターに後方攻撃機能を追加）」の拡張は
　バグ等修正とは扱いが異なる感があるため未導入（デフォでは WizIII でも導入除外されている状態です）
　（※同梱の単機能パッチで追加導入することも可能）
※「武器射程改造＋射程修正」の改変は
　アイテムデータ等で射程範囲に関わる変更をしていないため挙動自体は未パッチのオリジナル通り
※「GBC Wiz3(KOD)機能追加テスト」のread meに記載の
　「ブレスの追加効果の階層制限外し」は詳細が不明なため未導入

※「機能追加＆追加バグ修正」（「GBC Wiz3(KOD)機能追加テスト」とその I ・ II への移植）の
　パッチ適用後は、それ以前のステートセーブは使えなくなる
　（戦闘・移動中ともプログラムに手が入る都合上、ステート再開ではほぼフリーズする）
　パッチ適用前のステートセーブを利用したい場合、必ずそこから一度タイトル画面に戻って
　セーブデータをリフレッシュすること

※※武器射程改造補足
　種族倍打2(動物～魔法生物の指定個所)の未使用分bit6～7で設定する
（+40hで中距離、+80hで長距離射程になる）　※変更しなければ射程範囲はオリジナル通り

※ビットフラグについて
bit0 01
bit1 02
bit2 04
bit3 08
bit4 10
bit5 20
bit6 40
bit7 80

※※「耐性関連変更」の意味
 ●GBC ( I - III ) 潜在バグについて
電撃（メリト・モリト・マモリト）系統のダメージ抵抗が
実際には麻痺抵抗＆首抵抗として機能している
　（出典参考：[得物屋24時間] アイテム注記）
https://emonoya.net/item/1/gbc1i_1.html
https://emonoya.net/item/3/gbc2i_1.html
https://emonoya.net/item/2/gbc3i_1.html

※※※
実際には電撃抵抗があったかもしれない装備
（[得物屋24時間]では誤動作らしい麻＆首だけで記載されている）
(抵：呪文　の採録は除く)
（耐性2に8Cが指定されているもののみ抜粋）
追加対応は特にしていないため電撃抵抗が無くなっている扱いなのかもしれません。
（本来の想定がわからない（推定しようがない）ので改変後も麻&首の抵抗保持のままです。）

※※※※【part12】87(=100)氏によるとオリジナルでは耐性1（bit0=01)は メリト・モリト・マモリト・ティルトウェイト・アイテム用ダメージ効果
なお、実際は耐性1-bit0(01=雷）は III のデータを見る限りでは導入されているアイテムはなさそうです。（得物屋24時間による情報とは異なることになりそうですが、もともと耐性2の8Cが麻＆首という想定で電撃抵抗というものが存在していなかったのか、耐性2の8Cが本来は電撃抵抗であるという確信による定説なのかはよくわかりません。）
※※※※※いずれにしてもオリジナル版で電撃抵抗によるダメージ半減はなかった扱いのようです。
	（呪文抵抗によるダメージ半減そのものは働いていたようです）
※※※※※※現状では改変版でもアイテム設定をいじっていないため電撃抵抗があるアイテムはありません。
	（呪文抵抗によるダメージ半減でのみ電撃を防げる状態です）
※※※※※※※「だいまどうしの魔よけ」は I のみ 呪文抵抗所持の設定らしくそれにより電撃半減するようです。

III
124 ニルダの杖
抵：呪文 火 冷 毒 麻 石 吸 首	※呪文抵抗所持のため電撃半減はする

137 悪魔の石
抵：麻 石 首

142 だいまどうしの魔よけ
抵：火 冷 毒 麻 石 吸 首	※呪文抵抗なし

166 ガ-ディアンホ-ン
抵：火 麻 首

192 だいちの鎧
抵：聖 麻 首

193 なまりの鎧
抵：冷 麻 首

195 エルフの鎖かたびら
抵：火 麻 首

214 しっこくのよろい
抵：火 麻 首

221 てんにょのはごろも
抵：火 聖 麻 首

224 ナックルブレ-ド
抵：火 毒 麻 石 首

II
142 だいまどうしの魔よけ
抵：火 冷 毒 麻 石 吸 首	※呪文抵抗なし

161 ゴ-ルデンハンマ-
抵：麻 首

179 かた鎧
抵：聖 麻 首

I
94 ワ-ドナの魔よけ
抵：呪文 火 冷 聖 毒 麻 石 吸 首	※呪文抵抗所持のため電撃半減はする

142 だいまどうしの魔よけ
抵：呪文 火 冷 聖 毒 麻 石 吸 首	※呪文抵抗所持のため電撃半減はする


麻痺・首の耐性はアイテム設定の耐性2で指定するように改変されています。
耐性2-bit2(04=麻痺） 耐性2-bit3(08=首）となり
未パッチのGBCオリジナル版での耐性2に8C(や8C以上)が指定されている場合の麻痺・首耐性が
正常にそれと指定されるよう【part12】87(=100)氏の手で極めてスマートな方法で導入されています。
8Cの指定では(8C-0C(※04+08)で)あまりの80が出てしまいますが、そこに即死ブレス耐性が加わり
耐性2-bit7(80=即死ブレス）として抵抗能力が追加され強化されている状態になっているようです。
（8C=耐：麻 首　→　耐：麻 首 息(+死)　のようなイメージで拡張されているのだと思います）
ただし、息(+死)にあたる攻撃を持っているモンスターは存在していません。



※※※※
元の「機能追加テスト」（Wiz III）での
14E-F
52 05
↓
62 11
が何かの起動に関連している可能性
（オートターゲット単体改変で変えておかないとフリーズする）
（オートターゲット単体改変でも
D7BD-Eを22 7AにしF9F3-FA4Fの射程改変関連の部分を入れておけば未変更でもフリーズしない）
（ I ・II ではオートターゲットで14E-FとD7BD-Eは変えなくともフリーズしない　F9F3-FA4Fの個所は必要）

詳細が不明なため III 以外では未変更



◆パッド入力改造　について
・Wiz I
・Wiz II
元の「機能追加テスト」（Wiz III）での
3C90-3D0F の空き領域を利用している個所は
Wiz I ・ II では 「使用されている領域」なので
3D90-3E0F （ぴったり100バイト後ろ）に移動してある
※単純に元の形（アドレス）と比較しやすいからというだけで
　利用している位置に特別な深い意味はない



◆アライメント確認追加　について
　変更箇所は基本的に　非戦闘時　に読み込まれる

・Wiz I
直前の空き領域は多くなっているが
同じアドレス位置(136C8-136FF)のままで導入可能

※戻りルーチン関係の対処のため
136D4- ($76D4-)
CD 40 22　（$2240）
↓
CD 8E 22　（$228E）　※元のプログラムで IIIとズレている位置に調整
　※バイナリエディタ上でも228Eの位置

・Wiz II
元の「機能追加テスト」（Wiz III）での
136C8-136FF の空き領域を利用している個所は
Wiz I・II では 「使用されている領域」なので
138C8-138FF （ぴったり200バイト後ろ）に移動してある
※単純に元の形（アドレス）と比較しやすいからというだけで
　利用している位置に特別な深い意味はない

※戻りルーチン関係の対処のため
138D4- ($78D4-)
CD 40 22　（$2240）
↓
CD 72 22　（$2272）　※元のプログラムで IIIとズレている位置に調整
　※バイナリエディタ上でも2272の位置


◆耐性関連変更　について

・Wiz I
元の「機能追加テスト」（Wiz III）での
6570近辺のプログラムは
Wiz I では 62B0近辺にある

62B8-
FA 33 D0
↓
FA 22 D0

10B80近辺のプログラムは
Wiz I では似て異なる位置にある

10B8A-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 80

10F2E-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 04

1100C-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 08

11429-
FA 58 D0 E6 01 20 10 FA 58 D0 E6 0E
↓
00 00 00 00 00 00 00 00 00 FA 58 D0


・Wiz II
元の「機能追加テスト」（Wiz III）での
6570近辺のプログラムは
Wiz II では 6710近辺にある

6718-
FA 33 D0
↓
FA 22 D0

10C21-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 80

10FC5-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 04

110A3-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 08

114C7-
FA 58 D0 E6 01 20 10 FA 58 D0 E6 0E
↓
00 00 00 00 00 00 00 00 00 FA 58 D0


◆オートターゲット　について

※武器射程の拡張と連動しているため
F9F3-FA4Fの射程改変関連の改変も入れておく必要がある

Wiz III で単機能導入する際は
D7BD-E
F3 21
↓
22 7A　（$FA22）
が何かの起動に関連している可能性
（オートターゲット単体の改変でもここを変えておかないとフリーズする）

※ I ・ II ではD7BD-Eを22 7Aにしなくともフリーズしない（変えると逆に壊れる）
　（ベース改変としてF9F3-FA4Fの射程改変関連の個所の導入は必要）


・Wiz I
直前の空き領域は多くなっているが
同じアドレス位置(F9F3-FA67 / 13700-13750)で導入可能

※戻りルーチン関係の対処のため
1372C- ($772C-)
21 70 25　（$2570）
↓
21 AA 25　（$25AA）　※元のプログラムで IIIとズレている位置に調整
　※バイナリエディタ上でも25AAの位置

13739- ($7739-)
21 6B 25　（$256B）
↓
21 A5 25　（$25A5）　※元のプログラムで IIIとズレている位置に調整


・Wiz II
F9F3-FA4Fの射程改変関連の部分はそのまま導入

137D0近辺まで使用領域になっているため
13700-13750の改変を
13800-13850に移動して対処

※戻りルーチン関係の対処のため

1380D- ($780D-)
CD 29 77　（$7729）
↓
CD 29 78　（$2570）　※100バイト倒している分の調整

1382C- ($782C-)
21 70 25　（$2570）
↓
21 A2 25　（$25A2）　※元のプログラムで IIIとズレている位置に調整
　※バイナリエディタ上でも25A2の位置

13839- ($7839-)
21 6B 25　（$256B）
↓
21 9D 25　（$259D）　※元のプログラムで IIIとズレている位置に調整



◆武器射程の拡張　について

※単体では必要なくとも
オートターゲットの拡張と密接に連動しているため
F9F3-FA4Fの射程改変関連の部分も入れておく必要がある

元の「機能追加テスト」（Wiz III）での
D7BD-E
F3 21
↓
22 7A　（$FA22）
が武器射程改造の攻撃対象選択に関連している（詳細は武器射程改造の57BC-の説明参照）
（ここだけ変えるとフリーズする）

※戦闘コマンド関連の改修個所
　（原文は「武器射程改造.rtf」参照）
　（II も同じアドレス）

コマンド表示
E9C7-
　（I　E9C5-）
EA 90 FF FA B0 FF FE 03 30
↓
E0 90 F0 B0 CD 19 7A B7 28

盗賊・忍者
EA18
　（I　EA16-）
11
↓
0A

EA21-
　（I　EA1F-）
FA 90 FF 3C EA 90 FF 18 34 FA 91 FF F6 04 EA 91 FF FA 90 FF
↓
18 10 F0 91 F6 04 E0 91 CB 47 28 06 CB 87 E0 91 18 2B F0 90



・Wiz I
※戻りルーチン関係の対処のため

FA22-
F0 AC
↓
F0 AA
　※必要ない可能性があるので現状は未変更

FA32-
F0 B0
↓
F0 AE
　※必要ない可能性があるので現状は未変更

FA3E-
C3 F3 21　（$21F3）
↓
C3 41 22　（$2241）　※元のプログラムで IIIとズレている位置に調整

※念のため「射程修正」の変更個所も導入
　（原文は「アイテム効果適用.rtf」参照）
13751-13760の改変をそのまま適用

102C9-
FA 19 D0
↓
CD 51 77　（$7751）

※戦闘コマンド関連の改修
　（原文は「武器射程改造.rtf」参照）



・Wiz II
※戻りルーチン関係の対処のため
FA3E-
C3 F3 21　（$21F3）
↓
C3 25 22　（$2225）　※元のプログラムで IIIとズレている位置に調整

※念のため射程修正の変更分も導入
　（原文は「アイテム効果適用.rtf」参照）
13751-13760の改変を
13851-13860に移動して対処

102C9-
FA 19 D0
↓
CD 51 78　（$7851）


◆パッド入力改造　について
・Wiz I
・Wiz II
元の「機能追加テスト」（Wiz III）での
3C90-3D0F の空き領域を利用している個所は
Wiz I ・ II では 「使用されている領域」なので
3D90-3E0F （ぴったり100バイト後ろ）に移動してある
※単純に元の形（アドレス）と比較しやすいからというだけで
　利用している位置に特別な深い意味はない



◆耐性関連変更　について

・Wiz I
元の「機能追加テスト」（Wiz III）での
6570近辺のプログラムは
Wiz I では 62B0近辺にある

62B8-
FA 33 D0
↓
FA 22 D0

10B80近辺のプログラムは
Wiz I では似て異なる位置にある

10B8A-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 80

10F2E-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 04

1100C-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 08

11429-
FA 58 D0 E6 01 20 10 FA 58 D0 E6 0E
↓
00 00 00 00 00 00 00 00 00 FA 58 D0


・Wiz II
元の「機能追加テスト」（Wiz III）での
6570近辺のプログラムは
Wiz II では 6710近辺にある

6718-
FA 33 D0
↓
FA 22 D0

10C21-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 80

10FC5-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 04

110A3-
21 2A D3 09 7E E6 01
↓
21 0C D2 09 7E E6 08

114C7-
FA 58 D0 E6 01 20 10 FA 58 D0 E6 0E
↓
00 00 00 00 00 00 00 00 00 FA 58 D0



◆サウンド関連　について
音色に関わると思われる部分のうち I と II でも導入できる個所

・Wiz III
7900B-
24 45 56
↓
01 23 45

79013-
DB BA A9
↓
FE DC BA

7944B-
12 39 05 98 91 09
↓
22 91 02 68 22 03

796AC
2A 01 41
↓
2D 02 42

7D00B-
24 45 56
↓
01 23 45

7D013-
DB BA A9
↓
FE DC BA

7D44B-
12 39 05 98 91 09
↓
22 91 02 68 22 03

7D6AC-
2A 01 41
↓
2D 02 42

81155
81023
01
↓
80


・Wiz I での同様の個所
7900B-
24 45 56
↓
01 23 45

79013-
DB BA A9
↓
FE DC BA

7944B-　※選択SEの音色
12 39 05 98 91 09
↓
22 91 02 68 22 03

796AC-
2A 01 41
↓
2D 02 42

7D00B-
24 45 56
↓
01 23 45

7D013-
DB BA A9
↓
FE DC BA

7D44B-
12 39 05 98 91 09
↓
22 91 02 68 22 03

7D6AC
2A 01 41
↓
2D 02 42

8135F
81491
01
↓
80


・Wiz II での同様の個所
7900B-
24 45 56
↓
01 23 45

79013-
DB BA A9
↓
FE DC BA

7944B-　※選択SEの音色
12 39 05 98 91 09
↓
22 91 02 68 22 03

796AC
2A 01 41
↓
2D 02 42

7D00B-
24 45 56
↓
01 23 45

7D013-
DB BA A9
↓
FE DC BA

7D44B-
12 39 05 98 91 09
↓
22 91 02 68 22 03

7D6AC-
2A 01 41
↓
2D 02 42

83A6F
83BA1
01
↓
80


カーソルSE呼び出しに関わると思われる部分

元の「機能追加テスト」（Wiz III）での
C3F0近辺～C980近辺　と
19490近辺　にある
CD 44 37
↓
00 00 00
がカーソルSE無効化関係の変更
※C542-4
　C781-3
　C8FD-F
　の個所（前が02になっている個所）は書き換えず残されている（選択SE）

・Wiz I での対応は
CD 7E 37　の個所

・Wiz II での対応は
CD 79 37　の個所



◆モンスター後方攻撃（モンスターに後方攻撃機能を追加）　について
　※単機能パッチは用意してあるが「機能追加＆追加バグ修正」には未導入

A7A6-
79 D6 03
↓
CD C4 79　（$79C4）

79C4-　※空き領域
↓
FA 35 D0 E6 80 79 C0 D6 03 C9


・Wiz I での同様の個所
A403-
79 D6 03
↓
CD 30 77　（$7730）

7730-　※空き領域（III と同じ位置では空き場所の使い方がもったいないので繰り上げ）
↓
FA 35 D0 E6 80 79 C0 D6 03 C9


・Wiz II での同様の個所
A840-
79 D6 03
↓
CD 60 7B　（$7B60）

7B60-　※空き領域（III と同じ位置は使用領域なので後ろに倒す）
↓
FA 35 D0 E6 80 79 C0 D6 03 C9
